Wstęp do uczenia maszynowego

Projekt nr 2

Jakub Piwko, Malwina Wojewoda

Pakiety

Wczytanie danych oraz ich opis

Jak dowiadujemy się z opisu danych są one obrobioną nieco wersją zbioru USCensus1990raw. Zawierał on 1 % próbki z pełnego spisu powszechnego z 1990r. W naszym pliku rekordy zostały losowo przemieszane. Aby uzyskać zbiór, którym się zajmujemy zostały wykonane następujące operacje:

Można więc powiedzieć, że na danych został już wykonany preprocessing.

Pierwszym atrybutem jest caseid i powinnien on być ignorowany podczas analizy.
Wszystkie dane są numeryczne.

Sprawdźmy czy w zbiorze są jakieś braki danych:

Wygląda na to, że w naszym zbiorze nie ma braków danych.

Nie ma też zduplikowanych wierszy.

Sprawdzimy jeszcze jakie są unikalne wartości w każdej z kolumn:

Oryginalny zbiór jest duży, ograniczymy go do losowej jednoprocentowej próbki, dodatkowo usuniemy zmienną caseid.

Analiza zmiennych

Przejdziemy teraz do głębszej analizy zmiennych zawartych w naszej ramce. Przyjrzymy sie mapie korelacji a także zależnościom między zmiennymi.

Z powyższej mapy możemy odczytać, że w ramce danych występują wysoko skorelowane zmienne. Podzbędziemy się tych o najwyższym module wartości korelacji (czyli większym od 0.7).

Po obróbce zostało 38 kolumn w ramce. Jako, że wszystkie z nich są kategoryczne, zbadamy teraz ich rozkłady na grupowym histogramie.

Redukcja zmiennych: algorytm MCA

Sprawdźmy najpierw do jakiej liczby zmiennych możemy zredukować:

Z wykresu wynika, że najbardziej odpowiednią wartością będzie 10.

Redukcja zmiennych: współczynnik V Craméra

powrót do EDA

Możemy zauważyć, że większość zmiennych ma bardzo nierównomierny rozkład, w którym przeważa jedna lub dwie wartości. Jednynie zmienna dAge przypomina rozkład jednostajny.

Następnie przyjrzemy się wykresom wizualizującym relacje między zmiennymi, aby odkryć jakieś zależności, które mogą nam pomóc przy doborze klastrów. Przyjrzemy się bubble plotom, które pokazują liczności przecięć dwóch zmiennych.

Legenda:

iMarital (marital status) iClass (class of worker)
0 Now Married, Except Separated N/a Less Than 16 Yrs. Old/unemp. Who Never Worked
1 Widowed Emp. of a Private for Profit Company
2 Divorced Emp. of a Private Not for Profit
3 Separated Local Gov. Emp. City, County, Etc.
4 Never Married or Under 15 Yrs. Old State Gov. Emp.
5 Federal Gov. Emp.
6 Self Emp. in Own Not Incorp.d Business
7 Self Emp. in Own Incorp.d Business
8 Working Without Pay in Family Business or Farm
9 Unemp., Last Worked in 1984 or Earlier

Widać, że przeważają grupy osób, które są w związku małżeńskim (1 na osi x) nigdy nie były w sformalizowanym związku lub poniiżej 15 roku życia (4 na osi x). Dodatkowo widać, że w grupie 4 na osi x, jest dużo osób, które nigdy nie były zatrudnione lub mają mniej niż 16 lat (0 na osi y), co jest dosyć intuicyjne. Dodatkowo wśród osób zamężnych jest przewaga osób pracujących prywatnie (1 na osi y)

Legenda:

iRelat1 (related or not) dAge
0 Householder 0
1 Husband/wife <13
2 Son/daughter 13-19
3 Stepson/stepdaughter 20-29
4 Brother/sister 30-39
5 Father/mother 40-49
6 Grandchild 50-64
7 Other Rel. >65
8 Roomer/boarder/foster Child
9 Housemate/roommate
10 Unmarried Partner
11 Other Nonrel.
12 Instit. Person
13 Other Pers. in Grp. Qtrs.

Na wykresie ze zmiennymi dAge i iRelat1 widać niesamowicie ciekawe i oszałamiające rzeczy. Widać, że dorosłe osoby (oznaczone numerami większymi niż 2 na osi x) są głowami rodziny (0 na osi y) i są zakawalifikowani jako mąż lub żona (1 na osi y). Natomiast osoby młodsze (1 na osi x) są kwalifikowani przede wszytskim jako dzieci, co jest spójne.

Legenda:

iEnglish (ability to speak English) iSchool (school enrollment)
0 N/a Less Than 5 Yrs. Old/speaks Only English N/a Less Than 3 Yrs. Old
1 Very well Not Attending School
2 Well Yes, Pub. School, Pub. Coll.
3 Not Well Yes, Private School, Private Coll.
4 Not at all

Największa grupą wśród rozważanych stanową osoby, które mówią tylko po angielsku. Wśród nich najwięcej jest osób, które nie chodzą do szkoły, czyli jak można wnioskować - dorosłych. Można też zauważyć, że więcej osób chodzi do publicznych, niż prywatnych placówek.

Skalowanie

Aby znormalizować naszą ramkę danych, postanowiliśmy przeskalować dane, aby zawierały się tylko w zbiorze [0,1]. Zmienne nadal pozostaną dyksretne, ale będzie zdecydowanie łatwiej analizować dobierane klastry w późniejszych krokach. Mamy na uwadze również to, że takie skalowanie zmieni dobór klastrów, bo odległości między punktami będą ewaluowane inaczej.

Modelowanie

Na początek zbadaliśmy metodą łokcia, jaka liczba klastrów będzie optymalna. Wykres scorów dla liczby klastrów od 1 do 19 jest słabo stromy, więc trudno wybrać jednoznacznie punkt przegięcie. Ustalmy jednak, ze znajduje się on w okolicach wartośći od 5 d 9

Uznaliśmy, ze dobrą metodą na wizualizacje jak model dzieli dane na klastry, jest wykorzystanie centroidów i porównywanie ich w zależności od klastra dla każdej ze zmiennych.

KMeans

Na początek zbudujemy modele KMeans dla znalezionych wcześniej optymalnych liczb klastrów

Widać, że dobór większej liczby klastrów sprawia problemy, ponieważ kolejne klastry są do siebie za bardzo zbliżone. Dla 5 klastrów widać, że grupy mają różne dobrane centroidy, przez co wydaje się, że rzeczywiście dobrze rozdzielają rekory na różne klastry. Na pewno widać, że klaster oznaczony jako 3 dobrze oddziela młodzież i dzieci, natomiast klaster 4 ludzi starszych.